home *** CD-ROM | disk | FTP | other *** search
-
- Password Security: A Case History Encryption
- Computing
-
-
- Robert Morris
-
- Ken Thompson
-
-
-
-
- ABSTRACT
-
- This paper describes the history of the
- design of the password security scheme on a
- remotely accessed time-sharing system. The
- present design was the result of countering
- observed attempts to penetrate the system. The
- result is a compromise between extreme security
- and ease of use.
-
-
-
- April 3, 1978
-
-
-
- Password Security: A Case History Encryption
- Computing
-
-
- Robert Morris
-
- Ken Thompson
-
-
-
-
- INTRODUCTION
-
- Password security on the UNIX time-sharing system [1]
- is provided by a collection of programs whose elaborate and
- strange design is the outgrowth of many years of experience
- with earlier versions. To help develop a secure system, we
- have had a continuing competition to devise new ways to
- attack the security of the system (the bad guy) and, at the
- same time, to devise new techniques to resist the new
- attacks (the good guy). This competition has been in the
- same vein as the competition of long standing between
- manufacturers of armor plate and those of armor-piercing
- shells. For this reason, the description that follows will
- trace the history of the password system rather than simply
- presenting the program in its current state. In this way,
- the reasons for the design will be made clearer, as the
- design cannot be understood without also understanding the
- potential attacks.
-
- An underlying goal has been to provide password secu-
- rity at minimal inconvenience to the users of the system.
- For example, those who want to run a completely open system
- without passwords, or to have passwords only at the option
- of the individual users, are able to do so, while those who
- require all of their users to have passwords gain a high
- degree of security against penetration of the system by
- unauthorized users.
-
- The password system must be able not only to prevent
- any access to the system by unauthorized users (i.e. prevent
- them from logging in at all), but it must also prevent users
- who are already logged in from doing things that they are
- not authorized to do. The so called ``super-user'' pass-
- word, for example, is especially critical because the
- super-user has all sorts of permissions and has essentially
- unlimited access to all system resources.
-
- _________________________
- |- UNIX is a trademark of Bell Laboratories.
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
- Password security is of course only one component of
- overall system security, but it is an essential component.
- Experience has shown that attempts to penetrate remote-
- access systems have been astonishingly sophisticated.
-
- Remote-access systems are peculiarly vulnerable to
- penetration by outsiders as there are threats at the remote
- terminal, along the communications link, as well as at the
- computer itself. Although the security of a password
- encryption algorithm is an interesting intellectual and
- mathematical problem, it is only one tiny facet of a very
- large problem. In practice, physical security of the com-
- puter, communications security of the communications link,
- and physical control of the computer itself loom as far more
- important issues. Perhaps most important of all is control
- over the actions of ex-employees, since they are not under
- any direct control and they may have intimate knowledge
- about the system, its resources, and methods of access.
- Good system security involves realistic evaluation of the
- risks not only of deliberate attacks but also of casual
- unauthorized access and accidental disclosure.
-
- PROLOGUE
-
- The UNIX system was first implemented with a password
- file that contained the actual passwords of all the users,
- and for that reason the password file had to be heavily pro-
- tected against being either read or written. Although his-
- torically, this had been the technique used for remote-
- access systems, it was completely unsatisfactory for several
- reasons.
-
- The technique is excessively vulnerable to lapses in
- security. Temporary loss of protection can occur when the
- password file is being edited or otherwise modified. There
- is no way to prevent the making of copies by privileged
- users. Experience with several earlier remote-access sys-
- tems showed that such lapses occur with frightening fre-
- quency. Perhaps the most memorable such occasion occurred
- in the early 60's when a system administrator on the CTSS
- system at MIT was editing the password file and another sys-
- tem administrator was editing the daily message that is
- printed on everyone's terminal on login. Due to a software
- design error, the temporary editor files of the two users
- were interchanged and thus, for a time, the password file
- was printed on every terminal when it was logged in.
-
- Once such a lapse in security has been discovered,
- everyone's password must be changed, usually simultaneously,
- at a considerable administrative cost. This is not a great
- matter, but far more serious is the high probability of such
- lapses going unnoticed by the system administrators.
-
- Security against unauthorized disclosure of the
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
- passwords was, in the last analysis, impossible with this
- system because, for example, if the contents of the file
- system are put on to magnetic tape for backup, as they must
- be, then anyone who has physical access to the tape can read
- anything on it with no restriction.
-
- Many programs must get information of various kinds
- about the users of the system, and these programs in general
- should have no special permission to read the password file.
- The information which should have been in the password file
- actually was distributed (or replicated) into a number of
- files, all of which had to be updated whenever a user was
- added to or dropped from the system.
-
- THE FIRST SCHEME
-
- The obvious solution is to arrange that the passwords
- not appear in the system at all, and it is not difficult to
- decide that this can be done by encrypting each user's pass-
- word, putting only the encrypted form in the password file,
- and throwing away his original password (the one that he
- typed in). When the user later tries to log in to the sys-
- tem, the password that he types is encrypted and compared
- with the encrypted version in the password file. If the two
- match, his login attempt is accepted. Such a scheme was
- first described in [3, p.91ff.]. It also seemed advisable
- to devise a system in which neither the password file nor
- the password program itself needed to be protected against
- being read by anyone.
-
- All that was needed to implement these ideas was to
- find a means of encryption that was very difficult to
- invert, even when the encryption program is available. Most
- of the standard encryption methods used (in the past) for
- encryption of messages are rather easy to invert. A con-
- venient and rather good encryption program happened to exist
- on the system at the time; it simulated the M-209 cipher
- machine [4] used by the U.S. Army during World War II. It
- turned out that the M-209 program was usable, but with a
- given key, the ciphers produced by this program are trivial
- to invert. It is a much more difficult matter to find out
- the key given the cleartext input and the enciphered output
- of the program. Therefore, the password was used not as the
- text to be encrypted but as the key, and a constant was
- encrypted using this key. The encrypted result was entered
- into the password file.
-
- ATTACKS ON THE FIRST APPROACH
-
- Suppose that the bad guy has available the text of the
- password encryption program and the complete password file.
- Suppose also that he has substantial computing capacity at
- his disposal.
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
- One obvious approach to penetrating the password
- mechanism is to attempt to find a general method of invert-
- ing the encryption algorithm. Very possibly this can be
- done, but few successful results have come to light, despite
- substantial efforts extending over a period of more than
- five years. The results have not proved to be very useful
- in penetrating systems.
-
- Another approach to penetration is simply to keep try-
- ing potential passwords until one succeeds; this is a gen-
- eral cryptanalytic approach called key search. Human beings
- being what they are, there is a strong tendency for people
- to choose relatively short and simple passwords that they
- can remember. Given free choice, most people will choose
- their passwords from a restricted character set (e.g. all
- lower-case letters), and will often choose words or names.
- This human habit makes the key search job a great deal
- easier.
-
- The critical factor involved in key search is the
- amount of time needed to encrypt a potential password and to
- check the result against an entry in the password file. The
- running time to encrypt one trial password and check the
- result turned out to be approximately 1.25 milliseconds on a
- PDP-11/70 when the encryption algorithm was recoded for max-
- imum speed. It is takes essentially no more time to test
- the encrypted trial password against all the passwords in an
- entire password file, or for that matter, against any col-
- lection of encrypted passwords, perhaps collected from many
- installations.
-
- If we want to check all passwords of length n that con-
- sist entirely of lower-case letters, the number of such
- passwords is $26 sup n$. If we suppose that the password
- consists of printable characters only, then the number of
- possible passwords is somewhat less than $95 sup n$. (The
- standard system ``character erase'' and ``line kill'' char-
- acters are, for example, not prime candidates.) We can
- immediately estimate the running time of a program that will
- test every password of a given length with all of its char-
- acters chosen from some set of characters. The following
- table gives estimates of the running time required on a
- PDP-11/70 to test all possible character strings of length
- $n$ chosen from various sets of characters: namely, all
- lower-case letters, all lower-case letters plus digits, all
- alphanumeric characters, all 95 printable ASCII characters,
- and finally all 128 ASCII characters.
-
-
-
- - 5 -
-
-
- One has to conclude that it is no great matter for someone
- with access to a PDP-11 to test all lower-case alphabetic
- strings up to length five and, given access to the machine
- for, say, several weekends, to test all such strings up to
- six characters in length. By using such a program against a
- collection of actual encrypted passwords, a substantial
- fraction of all the passwords will be found.
-
- Another profitable approach for the bad guy is to use
- the word list from a dictionary or to use a list of names.
- For example, a large commercial dictionary contains typi-
- callly about 250,000 words; these words can be checked in
- about five minutes. Again, a noticeable fraction of any
- collection of passwords will be found. Improvements and
- extensions will be (and have been) found by a determined bad
- guy. Some ``good'' things to try are:
-
- - The dictionary with the words spelled backwards.
-
- - A list of first names (best obtained from some mailing
- list). Last names, street names, and city names also
- work well.
-
- - The above with initial upper-case letters.
-
- - All valid license plate numbers in your state. (This
- takes about five hours in New Jersey.)
-
- - Room numbers, social security numbers, telephone
- numbers, and the like.
-
- The authors have conducted experiments to try to deter-
- mine typical users' habits in the choice of passwords when
- no constraint is put on their choice. The results were
- disappointing, except to the bad guy. In a collection of
- 3,289 passwords gathered from many users over a long period
- of time;
-
- 15 were a single ASCII character;
-
- 72 were strings of two ASCII characters;
-
- 464 were strings of three ASCII characters;
-
- 477 were string of four alphamerics;
-
- 706 were five letters, all upper-case or all lower-
- case;
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
- 605 were six letters, all lower-case.
-
- An additional 492 passwords appeared in various available
- dictionaries, name lists, and the like. A total of 2,831,
- or 86% of this sample of passwords fell into one of these
- classes.
-
- There was, of course, considerable overlap between the
- dictionary results and the character string searches. The
- dictionary search alone, which required only five minutes to
- run, produced about one third of the passwords.
-
- Users could be urged (or forced) to use either longer
- passwords or passwords chosen from a larger character set,
- or the system could itself choose passwords for the users.
-
- AN ANECDOTE
-
- An entertaining and instructive example is the attempt
- made at one installation to force users to use less predict-
- able passwords. The users did not choose their own pass-
- words; the system supplied them. The supplied passwords
- were eight characters long and were taken from the character
- set consisting of lower-case letters and digits. They were
- generated by a pseudo-random number generator with only $2
- sup 15$ starting values. The time required to search (again
- on a PDP-11/70) through all character strings of length 8
- from a 36-character alphabet is 112 years.
-
- Unfortunately, only $2 sup 15$ of them need be looked
- at, because that is the number of possible outputs of the
- random number generator. The bad guy did, in fact, generate
- and test each of these strings and found every one of the
- system-generated passwords using a total of only about one
- minute of machine time.
-
- IMPROVEMENTS TO THE FIRST APPROACH
-
- 1. Slower Encryption
-
- Obviously, the first algorithm used was far too fast.
- The announcement of the DES encryption algorithm [2] by the
- National Bureau of Standards was timely and fortunate. The
- DES is, by design, hard to invert, but equally valuable is
- the fact that it is extremely slow when implemented in
- software. The DES was implemented and used in the following
- way: The first eight characters of the user's password are
- used as a key for the DES; then the algorithm is used to
- encrypt a constant. Although this constant is zero at the
- moment, it is easily accessible and can be made
- installation-dependent. Then the DES algorithm is iterated
- 25 times and the resulting 64 bits are repacked to become a
- string of 11 printable characters.
-
-
-
-
-
-
-
-
-
-
- - 7 -
-
-
- 2. Less Predictable Passwords
-
- The password entry program was modified so as to urge
- the user to use more obscure passwords. If the user enters
- an alphabetic password (all upper-case or all lower-case)
- shorter than six characters, or a password from a larger
- character set shorter than five characters, then the program
- asks him to enter a longer password. This further reduces
- the efficacy of key search.
-
- These improvements make it exceedingly difficult to
- find any individual password. The user is warned of the
- risks and if he cooperates, he is very safe indeed. On the
- other hand, he is not prevented from using his spouse's name
- if he wants to.
-
- 3. Salted Passwords
-
- The key search technique is still likely to turn up a
- few passwords when it is used on a large collection of pass-
- words, and it seemed wise to make this task as difficult as
- possible. To this end, when a password is first entered,
- the password program obtains a 12-bit random number (by
- reading the real-time clock) and appends this to the pass-
- word typed in by the user. The concatenated string is
- encrypted and both the 12-bit random quantity (called the
- $salt$) and the 64-bit result of the encryption are entered
- into the password file.
-
- When the user later logs in to the system, the 12-bit
- quantity is extracted from the password file and appended to
- the typed password. The encrypted result is required, as
- before, to be the same as the remaining 64 bits in the pass-
- word file. This modification does not increase the task of
- finding any individual password, starting from scratch, but
- now the work of testing a given character string against a
- large collection of encrypted passwords has been multiplied
- by 4096 ($2 sup 12$). The reason for this is that there are
- 4096 encrypted versions of each password and one of them has
- been picked more or less at random by the system.
-
- With this modification, it is likely that the bad guy
- can spend days of computer time trying to find a password on
- a system with hundreds of passwords, and find none at all.
- More important is the fact that it becomes impractical to
- prepare an encrypted dictionary in advance. Such an
- encrypted dictionary could be used to crack new passwords in
- milliseconds when they appear.
-
- There is a (not inadvertent) side effect of this modif-
- ication. It becomes nearly impossible to find out whether a
- person with passwords on two or more systems has used the
- same password on all of them, unless you already know that.
-
-
-
-
-
-
-
-
-
-
- - 8 -
-
-
- 4. The Threat of the DES Chip
-
- Chips to perform the DES encryption are already commer-
- cially available and they are very fast. The use of such a
- chip speeds up the process of password hunting by three ord-
- ers of magnitude. To avert this possibility, one of the
- internal tables of the DES algorithm (in particular, the
- so-called E-table) is changed in a way that depends on the
- 12-bit random number. The E-table is inseparably wired into
- the DES chip, so that the commercial chip cannot be used.
- Obviously, the bad guy could have his own chip designed and
- built, but the cost would be unthinkable.
-
- 5. A Subtle Point
-
- To login successfully on the UNIX system, it is neces-
- sary after dialing in to type a valid user name, and then
- the correct password for that user name. It is poor design
- to write the login command in such a way that it tells an
- interloper when he has typed in a invalid user name. The
- response to an invalid name should be identical to that for
- a valid name.
-
- When the slow encryption algorithm was first imple-
- mented, the encryption was done only if the user name was
- valid, because otherwise there was no encrypted password to
- compare with the supplied password. The result was that the
- response was delayed by about one-half second if the name
- was valid, but was immediate if invalid. The bad guy could
- find out whether a particular user name was valid. The rou-
- tine was modified to do the encryption in either case.
-
- CONCLUSIONS
-
- On the issue of password security, UNIX is probably
- better than most systems. The use of encrypted passwords
- appears reasonably secure in the absence of serious atten-
- tion of experts in the field.
-
- It is also worth some effort to conceal even the
- encrypted passwords. Some UNIX systems have instituted what
- is called an ``external security code'' that must be typed
- when dialing into the system, but before logging in. If
- this code is changed periodically, then someone with an old
- password will likely be prevented from using it.
-
- Whenever any security procedure is instituted that
- attempts to deny access to unauthorized persons, it is wise
- to keep a record of both successful and unsuccessful
- attempts to get at the secured resource. Just as an out-
- of-hours visitor to a computer center normally must not only
- identify himself, but a record is usually also kept of his
- entry. Just so, it is a wise precaution to make and keep a
- record of all attempts to log into a remote-access time-
-
-
-
-
-
-
-
-
-
- - 9 -
-
-
- sharing system, and certainly all unsuccessful attempts.
-
- Bad guys fall on a spectrum whose one end is someone
- with ordinary access to a system and whose goal is to find
- out a particular password (usually that of the super-user)
- and, at the other end, someone who wishes to collect as much
- password information as possible from as many systems as
- possible. Most of the work reported here serves to frus-
- trate the latter type; our experience indicates that the
- former type of bad guy never was very successful.
-
- We recognize that a time-sharing system must operate in
- a hostile environment. We did not attempt to hide the secu-
- rity aspects of the operating system, thereby playing the
- customary make-believe game in which weaknesses of the sys-
- tem are not discussed no matter how apparent. Rather we
- advertised the password algorithm and invited attack in the
- belief that this approach would minimize future trouble.
- The approach has been successful.
-
- References
-
- [1] Ritchie, D.M. and Thompson, K. The UNIX Time-Sharing
- System. Comm. ACM 17 (July 1974), pp. 365-375.
-
- [2] Proposed Federal Information Processing Data Encryption
- Standard. Federal Register (40FR12134), March 17, 1975
-
- [3] Wilkes, M. V. Time-Sharing Computer Systems. American
- Elsevier, New York, (1968).
-
- [4] U. S. Patent Number 2,089,603.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-